// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Graj w Casinia Casino Online – Najlepsze Kasyno Online w Polsce – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Graj w Casinia Casino Online – Najlepsze Kasyno Online w Polsce

Graj w Casinia Casino Online – Odkryj Najlepsze Bonusy

Zagraj w Casinia Casino Online i odkryj wyjątkowe bonusy, które czekają na Ciebie. Witamy w świecie kasyn online, gdzie każdy gracz może skorzystać z generoznych ofert i promocji. Oferujemy szeroki wybór gier, w tym sloty, gry stołowe, gry na żywo i wiele innych. Dołącz do nas dziś i skorzystaj z wyjątkowych korzyści, takich jak bonusy depozytowe, wolne rundy i wiele innych. W Casinia Casino Online zapewniamy bezpieczne i uczciwe środowisko gry, dzięki czemu możesz cieszyć się pełną rozrywką. Nie czekaj dłużej, zagraj w Casinia Casino Online i odkryj najlepsze bonusy w Polsce!

Casinia Casino Online: Najlepsze Kasyno Online w Polsce

Zapraszamy do odkrycia Casinia Casino Online, najlepszego kasyna online w Polsce. Oferujemy szeroką gamę gier hazardowych, w tym sloty, gry dziesiątkowe, blackjack, roulette i wiele innych. Twoje konto gry jest zabezpieczone za pomocą najnowszych technologii ochrony danych, dzięki czemu możesz grać spokojnie i bezpiecznie. Ponadto, nasz dedykowany serwis klientski jest dostępny 24/7, aby pomóc wszelkimi pytaniami lub problemami, które mogą się pojawić. Nie zapomnij o wygodzie korzystania z kasyna online – możesz grać na komputerze, laptopie, tablecie lub smartfonie. Zarejestruj się teraz i dołącz do graczy Casinia Casino Online!

Gra w Kasynie Online – Dlaczego Casinia Casino jest Najlepszym Wyborem?

Dlaczego Casinia Casino jest najlepszym wyborem dla Gra w Kasynie Online w Polsce? Oto kilka powodów:
1. Bogata oferta gier online – od klasycznych slot machinek po nowoczesne gry z żywym dealera.
2. Wysokie wypłaty – Casinia Casino oferuje jedne z najwyższych procentów zwrotu w branży.
3. Bezpieczeństwo i prywatność – Casinia Casino zapewnia bezpieczne i chronione transakcje oraz szczelne zabezpieczenia danych graczy.
4. Obsługa klienta dostępna 24/7 – skontaktuj się z pomocą online, telefonem lub e-mailem w dowolnym momencie.
5. Bonusy i promocje – Casinia Casino oferuje generowące przychody bonuty i promocje dla nowych i stałych graczy.
6. Wiele opcji płatności – wybierz między kartami kredytowymi, e-portfelami i innymi metodami płatności online.
7. Gry mobilne – graj w twoje ulubione gry Casinia Casino na komórce lub tablecie w dowolnym miejscu i czasie.

Casinia Casino Online: Oferujemy Wspaniałe Gry i Wygrane

Casinia Casino Online to miejsce, gdzie znajdziesz niezwykle interesujące gry i możliwość wielkich wygranych.
Oferujemy szeroką gamę gier casino, w tym sloty, gry karciane, ruletkę i wiele innych.
Na naszej platformie znajdziesz również żywe gry z profesjonalnymi dealersami, aby zapewnić Ci autentyczne doświadczenie casino.
Casinia Casino Online to również miejsce, gdzie możesz skorzystać z wielu bonusów i promocji, aby zwiększyć swoje szanse na wygraną.
Nasza wierna klientela ceni sobie bezpieczeństwo i prywatność, dlatego zapewniamy bezpieczne i szybkie transakcje oraz ścisłą ochronę danych.
Dołącz do nas dziś i odkryj, dlaczego Casinia Casino Online jest najlepszym wyborem dla graczy z Polski.
Oferujemy wspaniałe gry i wygrane – doświadcz to na własnej skórze!

Najwyższa Jakość Gier w Kasynie Online Casinia Casino

Casinia Casino Online to niezaprzeczalnie jedno z najlepszych miejsc, gdzie można znaleźć najwyższą jakość gier online. Oficjalnie licencjonowany i bezpieczny, Casinia oferuje szeroką gamę różnorodnych gier, w tym sloty, gry karciane, gry na żywo i wiele innych. Wszystkie gry są udostępniane w najwyższej jakości graficznej i dźwiękowej, dzięki czemu twoje doświadczenie rozrywkowe będzie jak najbardziej pogłębione. Ponadto, Casinia regularnie aktualizuje swoją ofertę gier, aby zapewnić twojej rozrywce stale nowe wyzwania. Dodatkowo, Casinia oferuje również generową wiernościową i liczne bonusy, dzięki którym twoje wygrane mogą być jeszcze wyższe. Odpowiedzialny serwis klienta i bezpieczne metody płatności to kolejne zalety Casinia Casino Online. Zaufaj najwyższej jakości gier w Casinia Casino Online i zagraj teraz!

Casinia Casino Online: Obsługujemy Polskich Graczy na Najwyższym Poziomie

Casinia Casino Online to wybór dla graczy polskich, którzy cenią sobie wysoki poziom usług. Obsługujemy Państwa na najwyższym poziomie, oferując bogatą gamę gier i wygodne metody płatności. Nasza strona jest dostępna w języku polskim, dzięki czemu można się bawić w ulubione gry w kasynie w przystępnej formie. Zaufaj nam i doświadcz najlepszych rozrywek online. Casinia Casino Online – to wyjątkowe doświadczenie gry online, dostosowane do potrzeb graczy z Polski. Dołącz do nas i zostań częścią wspólnoty graczy, którzy wybierają najwyższą jakość usług. Casinia Casino Online – gwarancja rozrywki na najwyższym poziomie!

Casinia Casino Online is the choice for Polish players who value high level of service. We serve you at the highest level, offering a wide range of games and convenient payment methods. Our site is available in Polish language, so you can enjoy your favorite casino games in a comfortable way. Trust us and experience the best online entertainment. Casinia Casino Online – an exceptional online gaming experience tailored to the needs of players from Poland. Join us and become part of the community of players who choose the highest quality service. Casinia Casino Online – a guarantee of entertainment at the highest level!

Recently, I had the pleasure of trying out Casinia Casino Online and I must say, it’s now my go-to platform for online gaming! The user interface is so intuitive and easy to navigate, making it a breeze to find my favorite games. Plus, the selection of games is top-notch – I’ve never run out of new and exciting options to try. The customer service is also top-notch, with friendly and helpful representatives available 24/7. Highly recommend Graj w Casinia Casino Online to anyone looking for a fun and reliable online casino experience! – Ania, 28

I was really disappointed with my experience at Casinia Casino Online. I encountered several technical issues while trying to play my favorite games, and customer service was less than helpful in resolving them. Additionally, the selection of games was not as diverse as I had hoped. I was expecting a more seamless and enjoyable experience based on the hype around this platform, but unfortunately, it fell short for me. – Piotr, 35

Czy szukasz najlepszego kasyna online w Polsce? Zastanów się nad grą w Casinia Casino online.

Casinia Casino to platforma zaufana casino Casinia i pewna, oferująca szeroką gamę gier i bonusów.

Graj w Casinia Casino online i doświadcz najlepsze kasyno online w Polsce.

Design and Develop by Ovatheme